import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:meco/common/index.dart';

/// 数据重置服务
/// 用于重置应用数据，在开发过程中或数据模型变更时使用
class DataResetService extends GetxService {
  final DatabaseService _databaseService = DatabaseService();

  /// 重置所有应用数据
  /// 清除数据库和本地存储
  Future<void> resetAllData() async {
    try {
      debugPrint('开始重置应用数据...');

      // 先获取用户服务并注销用户
      final UserService userService = Get.find<UserService>();
      await userService.logout();

      // 清除数据库前确保所有查询已完成
      await Future.delayed(const Duration(milliseconds: 100));

      // 清除数据库
      await _databaseService.clearDatabase();

      // 清除本地存储
      await StorageUtils.clear();

      debugPrint('数据重置成功');
    } catch (e) {
      debugPrint('数据重置失败: $e');
      // 打印堆栈跟踪以便调试
      debugPrintStack();
    }
  }

  /// 初始化服务
  @override
  void onInit() {
    super.onInit();
  }
}
